Pandas常用操作整理 您所在的位置:网站首页 pandas 写excel 颜色 Pandas常用操作整理

Pandas常用操作整理

2023-07-03 00:05| 来源: 网络整理| 查看: 265

- pandas读取数据

1,pandas读取纯文本文件 纯文本文件包括:csv,txt 语法:pd.read_csv(fpath) 2,读取excel文件 语法:pd.read_excel(fpath) 3,读取MySQL数据库 语法:pd.read_sql()

- pandas数据结构

1,Series Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引组成)

2,DataFrame Dataframe是一个表格型的数据结构 每行可以是不同的值类型(数值,字符串,布尔值) 既有行索引index,也有列索引columns 可以被看做由Series组成的字典

3,从DataFrame中查询出Series 如果只查询一行,一列,返回的是pd.Series 如果查询多行,多列,返回的是pd.DataFrame

- pandas查询数据

pandas查询数据的几种方法 1,df.loc方法,根据行,列的标签值查询 2,df.iloc方法,根据行,列的数字位置查询 3,df.where方法 4,df.query方法

df.loc既能查询,又能覆盖写入,强烈推荐多用!

pands使用df.loc查询数据的方法 1,使用单个lable值查询数据 2,使用值列表批量查询 3,使用数值区间进行范围查询 4,使用条件表达式查询 5,调用函数查询

以上查询方法,既使用于行,也适用于列

- pandas新增数据列

对于已经存在的DataFrame,对其新增数据列 1,直接赋值 2,df.apply方法 3,df.assign方法 可以同时添加多个新的列 4,按条件选择分组分别赋值

- pandas数据统计函数

1,汇总类统计 df.describe() df[].mean() df[].max()等 2,唯一去重和按值计数 2.1 唯一性去重 df[].unique() 2.2 按值计数 df[].value_counts() 3,相关系数和协方差 3.1相关系数:衡量相似度程度,当他们的相关系数为1,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变量变换的反向相似度最大。 df.corr() 3.2协方差:衡量同向反向程度,如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向变化,协方差越小说明反向程度越高。 df.cov()

- pandas缺失值处理

pandas处理缺失值的函数有: 1,isnull 和 notnull: 检测是否是空值,可用于df和series 2,dropna:丢弃,删除缺失值 axis:删除行还是列,{0 or ‘index’ , 1 or ‘columns’ },default 0 how:=any 则任何值为空都删除,=all 则所有值为空才删除 inplace: =True 则修改当前df ,否则返回新的df 3,fillna:填充空值 value:用于填充的值,可以是单个值,或者字典(key是列名,value是值) method:=ffill 使用前一个不为空的值填充 即forward fill ;=bfill 使用后一个不为空的值填充,即back fill axis:按行还是列填充,{0 or ‘index’ , 1 or ‘columns’ } inplace: =True 则修改当前df ,否则返回新的df

- pandas的SettingWithCopyWarning

很常见的报错,基本原因是链式操作get-set 中get发出了警报 本质原因:pandas的DataFrame的修改写操作,只允许在源DataFrame上进行,一步到位。 总之:pandas不允许先筛选子dataframe,再进行修改写入 要么使用.loc实现一个步骤直接修改源dataframe(前面说过,.loc既能查询,又能覆盖写入) 要么先copy一个子dataframe再下一个步骤执行修改

- pandas数据排序

1,Series的排序 Series.sort_values(ascending=True,inplace=False) ascending:默认为True升序排序,False降序排序 inplace:是否修改原始Series 2,DataFrame的排序 DataFrame.sort_values(by,ascending=True,inplace=False) by:字符串或者list(字符串),单列排序或者多列排序 ascending:bool或者list,升序还是降序,如果是list对应by的多列,比如[True,False,True,True] inplace:是否修改原始DataFrame

- pandas字符串处理

1,使用方法:先获取Series的str属性,然后在属性上调用函数 2,只能在字符串列上使用,不能在数字列上使用 3,DataFrame上没有str属性和处理方法 4,Series.str并不是python原生字符串,而是自己的一套方法,不过大部分和原生str很相似

- pandas的axis参数 - pandas索引的用途

1,更方便数据查询 df.set_index(列名,inplace = True,drop=False) df.loc[index] #使用inde进行数据查询 2,使用index可以获得性能的提升 如果index是唯一的,Pandas会使用哈希表优化,查询性能为o(1) 如果index不是唯一的,但是有序,Panda会使用二分查找算法,查询性能为o(logN) 如果index是完全随机的,那么每次查询都要扫描全表,查询性能为o(N) 3,自动的数据对齐功能 4,更多更强大的数据结构支持 CategoricalIndex,基于分类数据的Index,提升性能 MultiIndex,多维索引,用于groupby多维聚合后结果等 DatetimeIndex,时间类型索引,强大的日期和时间的方法支持

- pandas实现DataFrame的Merge操作

pd.merge(left,right,how=‘inner’,on=None,left_on = None,right_on=None,left_index=False,right_index=False,sort=True,suffixes=(‘_x’,‘_y’), copy=True,indicator=False,validate=None) left,right:要merge的dataframe或者有name的Series how:join类型,‘left’,‘right’,‘outer,‘inner’ on: join的key,left和right都需要有这个key left_on:left的df或者series的key right_on:right的df或者series的key 个人理解,on或者left_on+right_on这两种选择,二选一即可 left_index,right_index:使用index 而不是普通的column 做join suffiexs:两个元素的后缀,如果列有重名,自动添加后缀,默认是(‘_x’,’_y’)

- pandas实现数据的合并concat

使用场景: 批量合并相同格式的Excel,给Dataframe添加行,给Dataframe添加列 concat用处: 1,使用某种合并方式(inner/outer) 2,沿着某个轴向(axis=0/1) 3,把多个pandas对象(DataFrame/Series)合并成一个 appen语法:DataFrame.append(other,ignore_index=False) append只有按行合并,没有按列合并,相当于conca按行的简写形式

- pandas批量拆分与合并Excel

1,使用.iloc()方法进行拆分,注意每个小的excel,起始和终止的index的计算 2,使用concat进行合并

- pandas的分组集合groupby

groupby:先对数据分组,然后在每个分组上应用聚合函数,转换函数 df.groupby().sum() df.groupby().mean() df.groupby().agg()

- pandas的分层索引MultiIndex

分层索引的作用 1,分层索引,在一个轴向上拥有多个索引级,可以表达更高维度的数据形式 2,可以更方便的进行数据筛选,如果有序,则性能更好 3,groupby等操作的结果,如果是多KEY,结果是分层索引,需要会使用 4,一般不需要自己创建分层索引(MultiIndex有构造函数,但是一般不用) 5,series和dataframe都有分层索引MultiIndex

dataframe有多层索引MultiIndex 怎样筛选数据? 在选择数据时: 元祖(key1,key2)代表筛选多层索引,其中key1是索引第一级,key2是索引第二级 列表[key1,key2]代表同一层的多个key,其中key1和key2是并列的同级索引

- pandas的数据转换函数map&apply&applymap

数据转换函数对比:map,apply,mapapply 1,map:只用于Series,实现每个值到值的映射 series.map(dict) series.map(func)

2,apply:用于series实现每个值得处理,用于dataframe实现某个轴的series的处理 series.apply(func),函数的参数是每个值 dataframe.apply(func),函数的参数是series

3,applymap:只能用于dataframe,用于处理该dataframe的每个元素 - pandas怎样对每个分组应用apply函数

groupby.apply(function) function的第一个参数是dataframe function的返回结果,可以是dataframe,series,单个值,或者和输入值dataframe完全没关系

- pandas的stack和pivot实现数据透视

将列式数据变成二维交叉形式,便于分析

- pandas处理日期数据

pandas日期处理的作用:将2018-01-01,1/1/2018 等多种日期格式映射成统一的格式对象,在该对象上提供强大的功能支持。 几个概念: 1,pd.to_datatime:pandas的一个函数,能将字符串,列表,series变成日期形式 2,Timestamp:pandas表示日期的对象形式 3,DatetimeIndex:pandas表示日期的对象列表形式

其中: DatetimeIndex是Timestamp的列表形式 pd.to_datetime对单个日期字符串处理会得到Timestamp,对日期字符串列表处理,会得到DatetimeIndex

- pandas如何处理日期缺失的索引

问题:按照日期统计的数据,缺失了某天,导致数据不全该如何补充日期? 两种方法: 1,,DataFrame.reindex,调整dataframe的索引以适应新的索引 2,DataFrame.resample,可以对时间序列重采样,支持补充缺失值

- pandas怎样实现excel的vlookup并且在指定列后面输出 - pandas怎样结合Pyecharts绘制折线图 pandas如何找出最影响结果的那些特征

可以使用卡方检验选择topk的特征

from sklearn.feature_selection import SelecKBest from sklearn.feature_selection import chi2 bestfeatures = SelectKBest(score_func=chi2,k=len(X.columns)) fit = bestfeatures.fit(X,y - pandas的Categorical数据类型可以降低数据存储提升计算速度 - pandas和Flash配合实现快速在网页上展示表格数据 - pandas的get_dummies用于机器学习的特征处理

特征分为: 1,数值特征:比如车票价格 2,分类特征 2.1顺序分类特征:比如年龄,评分,级别 2.2普通分类特征:性别,颜色 对于评分,可以把这个分类直接转换成1,2,3,4,5表示,因为他们之间有顺序和大小的关系 对于颜色这种普通分类特征,直接用1/2/3/4/5/6/7表达,是不合适的。因为机器学习会误以为这些数字之间有大小关系。 可以通过get_dummies用于普通分类特征的处理,也叫做one-hot-encoding处理

- pandas使用explode实现一行变多行统计

df.explode()

- pandas借助python爬虫读取HTML网页表格存储到excel文件 - pandas计算同比环比指标的3种方法

这里涉及到跨越多行的数据计算 方法1:pandas.Series.pct_change 方法2:pandas.Series.shift 方法3:pandas.Series.diff

- pandas和数据库查询语言SQL的对比 - pandas实现groupby聚合后不同列数据统计

1,聚合后单列-单指标统计:每个MovieID的平均得分 df.groupby(‘MovieID’)[‘Rating’].mean() 2,聚合后单列-多指标统计:每个MovieID的最高评分,最低评分,平均评分 df.groupby(‘MovieId’)[‘Rating’].agg(mean=‘mean’,max=‘max’,min=np.min) df.groupby(‘MovieId’).agg({‘Rating’:[‘mean’, ‘max’, np.min]}) 3,聚合后多列-多指标统计:每个MovieID的评分人数,最高评分,最低评分,平均评分 df.groupby('MovieID).agg(rating_mean = (‘Rating’, ‘mean’),user_count = (‘UserID’, lambda x : x.unique()) df.groupby('MovieID).agg({‘Rating’:[‘mean’,‘min’,‘max’], ‘UserID’: lambda x : x.unique()}) df.groupby(‘MovieID’).apply(lambda x:pd.Series({‘min’:x[‘Rating’].min(),‘mean’:x[‘Rating’].mean()}))

agg(新列名=函数),agg(新列名=(原列名,函数)),agg({‘原列名’:函数/函数列表}) agg函数的两种形式,等号代表‘把结果赋值给新列’,字典/元祖代表 对这个列运用这些函数

- pandas读取excel将数据展示在网页上 - python使用pandas将excel存入MySQL - python批量翻译英语单词 - pandas处理excel复杂多行到多列转换 - python自动翻译英语论文PDF pandas怎样实现groupby聚合后字符串列的合并pandas读取excel绘制直方图python处理excel一列变多列pandas查询数据的简便方法df.query()pandas按行遍历DataFrame的3种方法pandas实现模糊匹配Merge数据的方法计算每个学生成绩最相似的10个学生pandas给表格使用apply同时添加多列 . pandas实现需要转置excel的数据关联


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有